package cn.flying.cloud.base.feign;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

import feign.Logger;
import feign.Retryer;

/**
 * feign 全局配置
 * 没有加@Configuration注解，配置为非全局化
 *
 * @author: admin
 * @date: 2022年04月06日 21:24
 * @version: 1.0
 */
@Configuration
public class FeignConfig {

    @Bean
    public Logger.Level Logger() {
        return Logger.Level.FULL;
    }

    /**
     * 在这里，我们使用 Retryer.Default 类生成一个默认的重试器，
     * fegin提供的默认实现，最大请求次数为5，初始间隔时间为100ms，下次间隔时间1.5倍递增，重试间最大间隔时间为1s，
     *
     * @return
     */
    @Bean
    public Retryer feignRetryer() {
        return new Retryer.Default(100, 5000, 3);
    }


}
